; ModuleID = 'empty.a8xch0l5-cgu.0'
source_filename = "empty.a8xch0l5-cgu.0"
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%"core::fmt::Arguments" = type { [0 x i64], { [0 x { [0 x i8]*, i64 }]*, i64 }, [0 x i64], { i64*, i64 }, [0 x i64], { [0 x { i8*, i8* }]*, i64 }, [0 x i64] }
%"unwind::libunwind::_Unwind_Exception" = type { [0 x i64], i64, [0 x i64], void (i32, %"unwind::libunwind::_Unwind_Exception"*)*, [0 x i64], [6 x i64], [0 x i64] }
%"unwind::libunwind::_Unwind_Context" = type { [0 x i8] }

$asan.module_ctor = comdat any

$asan.module_dtor = comdat any

$"vtable.0$f7da16c4a041bdbb31142783fc06168f" = comdat any

$"alloc1$f7da16c4a041bdbb31142783fc06168f" = comdat any

$"alloc2$f7da16c4a041bdbb31142783fc06168f" = comdat any

$"alloc6$f7da16c4a041bdbb31142783fc06168f" = comdat any

@vtable.0 = internal constant { { void (i8**)*, i64, i64, i32 (i8**)*, i32 (i8**)*, i32 (i8**)* }, [48 x i8] } { { void (i8**)*, i64, i64, i32 (i8**)*, i32 (i8**)*, i32 (i8**)* } { void (i8**)* @_ZN4core3ptr13drop_in_place17hfc37439ebf45ff93E, i64 8, i64 8, i32 (i8**)* @"_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h7b78d561c3825078E", i32 (i8**)* @"_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h7b78d561c3825078E", i32 (i8**)* @"_ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17ha73d4cc29f82cc0fE" }, [48 x i8] zeroinitializer }, comdat($"vtable.0$f7da16c4a041bdbb31142783fc06168f"), align 32
@alloc1 = internal constant { <{ [25 x i8] }>, [39 x i8] } { <{ [25 x i8] }> <{ [25 x i8] c"Hello Address Sanitizer!\0A" }>, [39 x i8] zeroinitializer }, comdat($"alloc1$f7da16c4a041bdbb31142783fc06168f"), align 32
@alloc2 = internal constant { <{ i8*, [8 x i8] }>, [48 x i8] } { <{ i8*, [8 x i8] }> <{ i8* getelementptr inbounds ({ <{ [25 x i8] }>, [39 x i8] }, { <{ [25 x i8] }>, [39 x i8] }* @alloc1, i32 0, i32 0, i32 0, i32 0), [8 x i8] c"\19\00\00\00\00\00\00\00" }>, [48 x i8] zeroinitializer }, comdat($"alloc2$f7da16c4a041bdbb31142783fc06168f"), align 32
@alloc6 = internal constant { <{ [0 x i8] }>, [32 x i8] } zeroinitializer, comdat($"alloc6$f7da16c4a041bdbb31142783fc06168f"), align 32
@__asan_option_detect_stack_use_after_return = external global i32
@___asan_gen_ = private unnamed_addr constant [12 x i8] c"1 32 8 2 _7\00", align 1
@___asan_gen_.2 = private unnamed_addr constant [13 x i8] c"1 32 48 2 _2\00", align 1
@___asan_gen_.3 = private unnamed_addr constant [14 x i8] c"1 32 8 4 _7.i\00", align 1
@___asan_gen_.4 = private constant [21 x i8] c"empty.a8xch0l5-cgu.0\00", align 1
@___asan_gen_.5 = private unnamed_addr constant [9 x i8] c"vtable.0\00", align 1
@___asan_gen_.6 = private unnamed_addr constant [7 x i8] c"alloc1\00", align 1
@___asan_gen_.7 = private unnamed_addr constant [7 x i8] c"alloc2\00", align 1
@___asan_gen_.8 = private unnamed_addr constant [7 x i8] c"alloc6\00", align 1
@__asan_global_vtable.0 = private global { i64, i64, i64, i64, i64, i64, i64, i64 } { i64 ptrtoint ({ { void (i8**)*, i64, i64, i32 (i8**)*, i32 (i8**)*, i32 (i8**)* }, [48 x i8] }* @0 to i64), i64 48, i64 96, i64 ptrtoint ([9 x i8]* @___asan_gen_.5 to i64), i64 ptrtoint ([21 x i8]* @___asan_gen_.4 to i64), i64 0, i64 0, i64 -1 }, section "asan_globals", comdat($"vtable.0$f7da16c4a041bdbb31142783fc06168f"), !associated !0
@__asan_global_alloc1 = private global { i64, i64, i64, i64, i64, i64, i64, i64 } { i64 ptrtoint ({ <{ [25 x i8] }>, [39 x i8] }* @1 to i64), i64 25, i64 64, i64 ptrtoint ([7 x i8]* @___asan_gen_.6 to i64), i64 ptrtoint ([21 x i8]* @___asan_gen_.4 to i64), i64 0, i64 0, i64 -1 }, section "asan_globals", comdat($"alloc1$f7da16c4a041bdbb31142783fc06168f"), !associated !1
@__asan_global_alloc2 = private global { i64, i64, i64, i64, i64, i64, i64, i64 } { i64 ptrtoint ({ <{ i8*, [8 x i8] }>, [48 x i8] }* @2 to i64), i64 16, i64 64, i64 ptrtoint ([7 x i8]* @___asan_gen_.7 to i64), i64 ptrtoint ([21 x i8]* @___asan_gen_.4 to i64), i64 0, i64 0, i64 -1 }, section "asan_globals", comdat($"alloc2$f7da16c4a041bdbb31142783fc06168f"), !associated !2
@__asan_global_alloc6 = private global { i64, i64, i64, i64, i64, i64, i64, i64 } { i64 ptrtoint ({ <{ [0 x i8] }>, [32 x i8] }* @3 to i64), i64 0, i64 32, i64 ptrtoint ([7 x i8]* @___asan_gen_.8 to i64), i64 ptrtoint ([21 x i8]* @___asan_gen_.4 to i64), i64 0, i64 0, i64 -1 }, section "asan_globals", comdat($"alloc6$f7da16c4a041bdbb31142783fc06168f"), !associated !3
@llvm.compiler.used = appending global [8 x i8*] [i8* bitcast ({ { void (i8**)*, i64, i64, i32 (i8**)*, i32 (i8**)*, i32 (i8**)* }, [48 x i8] }* @vtable.0 to i8*), i8* getelementptr inbounds ({ <{ [25 x i8] }>, [39 x i8] }, { <{ [25 x i8] }>, [39 x i8] }* @alloc1, i32 0, i32 0, i32 0, i32 0), i8* bitcast ({ <{ i8*, [8 x i8] }>, [48 x i8] }* @alloc2 to i8*), i8* getelementptr inbounds ({ <{ [0 x i8] }>, [32 x i8] }, { <{ [0 x i8] }>, [32 x i8] }* @alloc6, i32 0, i32 0, i32 0, i32 0), i8* bitcast ({ i64, i64, i64, i64, i64, i64, i64, i64 }* @__asan_global_vtable.0 to i8*), i8* bitcast ({ i64, i64, i64, i64, i64, i64, i64, i64 }* @__asan_global_alloc1 to i8*), i8* bitcast ({ i64, i64, i64, i64, i64, i64, i64, i64 }* @__asan_global_alloc2 to i8*), i8* bitcast ({ i64, i64, i64, i64, i64, i64, i64, i64 }* @__asan_global_alloc6 to i8*)], section "llvm.metadata"
@___asan_globals_registered = common hidden global i64 0
@__start_asan_globals = extern_weak hidden global i64
@__stop_asan_globals = extern_weak hidden global i64
@llvm.global_ctors = appending global [1 x { i32, void ()*, i8* }] [{ i32, void ()*, i8* } { i32 1, void ()* @asan.module_ctor, i8* bitcast (void ()* @asan.module_ctor to i8*) }]
@llvm.global_dtors = appending global [1 x { i32, void ()*, i8* }] [{ i32, void ()*, i8* } { i32 1, void ()* @asan.module_dtor, i8* bitcast (void ()* @asan.module_dtor to i8*) }]

@0 = private alias { { void (i8**)*, i64, i64, i32 (i8**)*, i32 (i8**)*, i32 (i8**)* }, [48 x i8] }, { { void (i8**)*, i64, i64, i32 (i8**)*, i32 (i8**)*, i32 (i8**)* }, [48 x i8] }* @vtable.0
@1 = private alias { <{ [25 x i8] }>, [39 x i8] }, { <{ [25 x i8] }>, [39 x i8] }* @alloc1
@2 = private alias { <{ i8*, [8 x i8] }>, [48 x i8] }, { <{ i8*, [8 x i8] }>, [48 x i8] }* @alloc2
@3 = private alias { <{ [0 x i8] }>, [32 x i8] }, { <{ [0 x i8] }>, [32 x i8] }* @alloc6

; std::rt::lang_start
; Function Attrs: nonlazybind sanitize_address uwtable
define hidden i64 @_ZN3std2rt10lang_start17ha536136f6581fd89E(void ()* nonnull %main, i64 %argc, i8** %argv) unnamed_addr #0 {
start:
  %asan_local_stack_base = alloca i64
  %0 = load i32, i32* @__asan_option_detect_stack_use_after_return
  %1 = icmp ne i32 %0, 0
  br i1 %1, label %2, label %4

2:                                                ; preds = %start
  %3 = call i64 @__asan_stack_malloc_0(i64 64)
  br label %4

4:                                                ; preds = %start, %2
  %5 = phi i64 [ 0, %start ], [ %3, %2 ]
  %6 = icmp eq i64 %5, 0
  br i1 %6, label %7, label %9

7:                                                ; preds = %4
  %MyAlloca = alloca i8, i64 64, align 32
  %8 = ptrtoint i8* %MyAlloca to i64
  br label %9

9:                                                ; preds = %4, %7
  %10 = phi i64 [ %5, %4 ], [ %8, %7 ]
  store i64 %10, i64* %asan_local_stack_base
  %11 = add i64 %10, 32
  %12 = inttoptr i64 %11 to i8**
  %13 = inttoptr i64 %10 to i64*
  store i64 1102416563, i64* %13
  %14 = add i64 %10, 8
  %15 = inttoptr i64 %14 to i64*
  store i64 ptrtoint ([12 x i8]* @___asan_gen_ to i64), i64* %15
  %16 = add i64 %10, 16
  %17 = inttoptr i64 %16 to i64*
  store i64 ptrtoint (i64 (void ()*, i64, i8**)* @_ZN3std2rt10lang_start17ha536136f6581fd89E to i64), i64* %17
  %18 = lshr i64 %10, 3
  %19 = add i64 %18, 2147450880
  %20 = add i64 %19, 0
  %21 = inttoptr i64 %20 to i64*
  store i64 -868082052615769615, i64* %21, align 1
  %22 = bitcast i8** %12 to i8*
  %23 = add i64 %19, 4
  %24 = inttoptr i64 %23 to i8*
  store i8 0, i8* %24, align 1
  call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %22)
  %25 = bitcast i8** %12 to void ()**
  %26 = ptrtoint void ()** %25 to i64
  %27 = lshr i64 %26, 3
  %28 = add i64 %27, 2147450880
  %29 = inttoptr i64 %28 to i8*
  %30 = load i8, i8* %29
  %31 = icmp ne i8 %30, 0
  br i1 %31, label %32, label %33

32:                                               ; preds = %9
  call void @__asan_report_store8(i64 %26)
  call void asm sideeffect "", ""()
  unreachable

33:                                               ; preds = %9
  store void ()* %main, void ()** %25, align 8
  %_4.0 = bitcast i8** %12 to {}*
; call std::rt::lang_start_internal
  %34 = call i64 @_ZN3std2rt19lang_start_internal17hf4abd869024c3270E({}* nonnull align 1 %_4.0, [3 x i64]* noalias readonly align 8 dereferenceable(24) bitcast ({ { void (i8**)*, i64, i64, i32 (i8**)*, i32 (i8**)*, i32 (i8**)* }, [48 x i8] }* @vtable.0 to [3 x i64]*), i64 %argc, i8** %argv)
  %35 = add i64 %19, 4
  %36 = inttoptr i64 %35 to i8*
  store i8 -8, i8* %36, align 1
  call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %22)
  store i64 1172321806, i64* %13
  %37 = icmp ne i64 %5, 0
  br i1 %37, label %38, label %45

38:                                               ; preds = %33
  %39 = add i64 %19, 0
  %40 = inttoptr i64 %39 to i64*
  store i64 -723401728380766731, i64* %40, align 1
  %41 = add i64 %5, 56
  %42 = inttoptr i64 %41 to i64*
  %43 = load i64, i64* %42
  %44 = inttoptr i64 %43 to i8*
  store i8 0, i8* %44
  br label %48

45:                                               ; preds = %33
  %46 = add i64 %19, 0
  %47 = inttoptr i64 %46 to i64*
  store i64 0, i64* %47, align 1
  br label %48

48:                                               ; preds = %45, %38
  ret i64 %34
}

; std::rt::lang_start::{{closure}}
; Function Attrs: nonlazybind sanitize_address uwtable
define internal i32 @"_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h7b78d561c3825078E"(i8** noalias nocapture readonly align 8 dereferenceable(8) %_1) unnamed_addr #0 {
start:
  %0 = bitcast i8** %_1 to void ()**
  %1 = ptrtoint void ()** %0 to i64
  %2 = lshr i64 %1, 3
  %3 = add i64 %2, 2147450880
  %4 = inttoptr i64 %3 to i8*
  %5 = load i8, i8* %4
  %6 = icmp ne i8 %5, 0
  br i1 %6, label %7, label %8

7:                                                ; preds = %start
  call void @__asan_report_load8(i64 %1)
  call void asm sideeffect "", ""()
  unreachable

8:                                                ; preds = %start
  %_3 = load void ()*, void ()** %0, align 8, !nonnull !7
  tail call void %_3()
  ret i32 0
}

; core::ops::function::FnOnce::call_once{{vtable.shim}}
; Function Attrs: nonlazybind sanitize_address uwtable
define internal i32 @"_ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17ha73d4cc29f82cc0fE"(i8** nocapture readonly %_1) unnamed_addr #0 personality i32 (i32, i32, i64, %"unwind::libunwind::_Unwind_Exception"*, %"unwind::libunwind::_Unwind_Context"*)* @rust_eh_personality {
start:
  %0 = bitcast i8** %_1 to void ()**
  %1 = ptrtoint void ()** %0 to i64
  %2 = lshr i64 %1, 3
  %3 = add i64 %2, 2147450880
  %4 = inttoptr i64 %3 to i8*
  %5 = load i8, i8* %4
  %6 = icmp ne i8 %5, 0
  br i1 %6, label %7, label %8

7:                                                ; preds = %start
  call void @__asan_report_load8(i64 %1)
  call void asm sideeffect "", ""()
  unreachable

8:                                                ; preds = %start
  %9 = load void ()*, void ()** %0, align 8, !nonnull !7
  tail call void %9(), !noalias !8
  ret i32 0
}

; core::ptr::drop_in_place
; Function Attrs: norecurse nounwind nonlazybind readnone sanitize_address uwtable
define internal void @_ZN4core3ptr13drop_in_place17hfc37439ebf45ff93E(i8** nocapture %_1) unnamed_addr #1 {
start:
  ret void
}

; empty::main
; Function Attrs: nonlazybind sanitize_address uwtable
define internal void @_ZN5empty4main17h568ef413728a35a0E() unnamed_addr #0 {
start:
  %asan_local_stack_base = alloca i64
  %0 = load i32, i32* @__asan_option_detect_stack_use_after_return
  %1 = icmp ne i32 %0, 0
  br i1 %1, label %2, label %4

2:                                                ; preds = %start
  %3 = call i64 @__asan_stack_malloc_1(i64 128)
  br label %4

4:                                                ; preds = %start, %2
  %5 = phi i64 [ 0, %start ], [ %3, %2 ]
  %6 = icmp eq i64 %5, 0
  br i1 %6, label %7, label %9

7:                                                ; preds = %4
  %MyAlloca = alloca i8, i64 128, align 32
  %8 = ptrtoint i8* %MyAlloca to i64
  br label %9

9:                                                ; preds = %4, %7
  %10 = phi i64 [ %5, %4 ], [ %8, %7 ]
  store i64 %10, i64* %asan_local_stack_base
  %11 = add i64 %10, 32
  %12 = inttoptr i64 %11 to %"core::fmt::Arguments"*
  %13 = inttoptr i64 %10 to i64*
  store i64 1102416563, i64* %13
  %14 = add i64 %10, 8
  %15 = inttoptr i64 %14 to i64*
  store i64 ptrtoint ([13 x i8]* @___asan_gen_.2 to i64), i64* %15
  %16 = add i64 %10, 16
  %17 = inttoptr i64 %16 to i64*
  store i64 ptrtoint (void ()* @_ZN5empty4main17h568ef413728a35a0E to i64), i64* %17
  %18 = lshr i64 %10, 3
  %19 = add i64 %18, 2147450880
  %20 = add i64 %19, 0
  %21 = inttoptr i64 %20 to i64*
  store i64 -506381209984437775, i64* %21, align 1
  %22 = add i64 %19, 8
  %23 = inttoptr i64 %22 to i64*
  store i64 -868082074056918792, i64* %23, align 1
  %24 = bitcast %"core::fmt::Arguments"* %12 to i8*
  %25 = add i64 %19, 4
  %26 = inttoptr i64 %25 to i32*
  store i32 0, i32* %26, align 1
  %27 = add i64 %19, 8
  %28 = inttoptr i64 %27 to i16*
  store i16 0, i16* %28, align 1
  call void @llvm.lifetime.start.p0i8(i64 48, i8* nonnull %24)
  %29 = bitcast %"core::fmt::Arguments"* %12 to [0 x { [0 x i8]*, i64 }]**
  %30 = ptrtoint [0 x { [0 x i8]*, i64 }]** %29 to i64
  %31 = lshr i64 %30, 3
  %32 = add i64 %31, 2147450880
  %33 = inttoptr i64 %32 to i8*
  %34 = load i8, i8* %33
  %35 = icmp ne i8 %34, 0
  br i1 %35, label %36, label %37

36:                                               ; preds = %9
  call void @__asan_report_store8(i64 %30)
  call void asm sideeffect "", ""()
  unreachable

37:                                               ; preds = %9
  store [0 x { [0 x i8]*, i64 }]* bitcast ({ <{ i8*, [8 x i8] }>, [48 x i8] }* @alloc2 to [0 x { [0 x i8]*, i64 }]*), [0 x { [0 x i8]*, i64 }]** %29, align 8, !alias.scope !11
  %38 = getelementptr inbounds %"core::fmt::Arguments", %"core::fmt::Arguments"* %12, i64 0, i32 1, i32 1
  %39 = ptrtoint i64* %38 to i64
  %40 = lshr i64 %39, 3
  %41 = add i64 %40, 2147450880
  %42 = inttoptr i64 %41 to i8*
  %43 = load i8, i8* %42
  %44 = icmp ne i8 %43, 0
  br i1 %44, label %45, label %46

45:                                               ; preds = %37
  call void @__asan_report_store8(i64 %39)
  call void asm sideeffect "", ""()
  unreachable

46:                                               ; preds = %37
  store i64 1, i64* %38, align 8, !alias.scope !11
  %47 = getelementptr inbounds %"core::fmt::Arguments", %"core::fmt::Arguments"* %12, i64 0, i32 3, i32 0
  %48 = ptrtoint i64** %47 to i64
  %49 = lshr i64 %48, 3
  %50 = add i64 %49, 2147450880
  %51 = inttoptr i64 %50 to i8*
  %52 = load i8, i8* %51
  %53 = icmp ne i8 %52, 0
  br i1 %53, label %54, label %55

54:                                               ; preds = %46
  call void @__asan_report_store8(i64 %48)
  call void asm sideeffect "", ""()
  unreachable

55:                                               ; preds = %46
  store i64* null, i64** %47, align 8, !alias.scope !11
  %56 = getelementptr inbounds %"core::fmt::Arguments", %"core::fmt::Arguments"* %12, i64 0, i32 5, i32 0
  %57 = ptrtoint [0 x { i8*, i8* }]** %56 to i64
  %58 = lshr i64 %57, 3
  %59 = add i64 %58, 2147450880
  %60 = inttoptr i64 %59 to i8*
  %61 = load i8, i8* %60
  %62 = icmp ne i8 %61, 0
  br i1 %62, label %63, label %64

63:                                               ; preds = %55
  call void @__asan_report_store8(i64 %57)
  call void asm sideeffect "", ""()
  unreachable

64:                                               ; preds = %55
  store [0 x { i8*, i8* }]* bitcast ({ <{ [0 x i8] }>, [32 x i8] }* @alloc6 to [0 x { i8*, i8* }]*), [0 x { i8*, i8* }]** %56, align 8, !alias.scope !11
  %65 = getelementptr inbounds %"core::fmt::Arguments", %"core::fmt::Arguments"* %12, i64 0, i32 5, i32 1
  %66 = ptrtoint i64* %65 to i64
  %67 = lshr i64 %66, 3
  %68 = add i64 %67, 2147450880
  %69 = inttoptr i64 %68 to i8*
  %70 = load i8, i8* %69
  %71 = icmp ne i8 %70, 0
  br i1 %71, label %72, label %73

72:                                               ; preds = %64
  call void @__asan_report_store8(i64 %66)
  call void asm sideeffect "", ""()
  unreachable

73:                                               ; preds = %64
  store i64 0, i64* %65, align 8, !alias.scope !11
; call std::io::stdio::_print
  call void @_ZN3std2io5stdio6_print17h35ebd65662fa8b15E(%"core::fmt::Arguments"* noalias nocapture nonnull dereferenceable(48) %12)
  %74 = add i64 %19, 4
  %75 = inttoptr i64 %74 to i32*
  store i32 -117901064, i32* %75, align 1
  %76 = add i64 %19, 8
  %77 = inttoptr i64 %76 to i16*
  store i16 -1800, i16* %77, align 1
  call void @llvm.lifetime.end.p0i8(i64 48, i8* nonnull %24)
  store i64 1172321806, i64* %13
  %78 = icmp ne i64 %5, 0
  br i1 %78, label %79, label %88

79:                                               ; preds = %73
  %80 = add i64 %19, 0
  %81 = inttoptr i64 %80 to i64*
  store i64 -723401728380766731, i64* %81, align 1
  %82 = add i64 %19, 8
  %83 = inttoptr i64 %82 to i64*
  store i64 -723401728380766731, i64* %83, align 1
  %84 = add i64 %5, 120
  %85 = inttoptr i64 %84 to i64*
  %86 = load i64, i64* %85
  %87 = inttoptr i64 %86 to i8*
  store i8 0, i8* %87
  br label %93

88:                                               ; preds = %73
  %89 = add i64 %19, 0
  %90 = inttoptr i64 %89 to i64*
  store i64 0, i64* %90, align 1
  %91 = add i64 %19, 8
  %92 = inttoptr i64 %91 to i64*
  store i64 0, i64* %92, align 1
  br label %93

93:                                               ; preds = %88, %79
  ret void
}

; Function Attrs: argmemonly nounwind willreturn
declare void @llvm.lifetime.start.p0i8(i64 immarg, i8* nocapture) #2

; std::rt::lang_start_internal
; Function Attrs: nonlazybind sanitize_address uwtable
declare i64 @_ZN3std2rt19lang_start_internal17hf4abd869024c3270E({}* nonnull align 1, [3 x i64]* noalias readonly align 8 dereferenceable(24), i64, i8**) unnamed_addr #0

; Function Attrs: argmemonly nounwind willreturn
declare void @llvm.lifetime.end.p0i8(i64 immarg, i8* nocapture) #2

; Function Attrs: nounwind nonlazybind sanitize_address uwtable
declare i32 @rust_eh_personality(i32, i32, i64, %"unwind::libunwind::_Unwind_Exception"*, %"unwind::libunwind::_Unwind_Context"*) unnamed_addr #3

; std::io::stdio::_print
; Function Attrs: nonlazybind sanitize_address uwtable
declare void @_ZN3std2io5stdio6_print17h35ebd65662fa8b15E(%"core::fmt::Arguments"* noalias nocapture dereferenceable(48)) unnamed_addr #0

; Function Attrs: nonlazybind sanitize_address
define i32 @main(i32 %0, i8** %1) unnamed_addr #4 {
top:
  %asan_local_stack_base = alloca i64
  %2 = load i32, i32* @__asan_option_detect_stack_use_after_return
  %3 = icmp ne i32 %2, 0
  br i1 %3, label %4, label %6

4:                                                ; preds = %top
  %5 = call i64 @__asan_stack_malloc_0(i64 64)
  br label %6

6:                                                ; preds = %top, %4
  %7 = phi i64 [ 0, %top ], [ %5, %4 ]
  %8 = icmp eq i64 %7, 0
  br i1 %8, label %9, label %11

9:                                                ; preds = %6
  %MyAlloca = alloca i8, i64 64, align 32
  %10 = ptrtoint i8* %MyAlloca to i64
  br label %11

11:                                               ; preds = %6, %9
  %12 = phi i64 [ %7, %6 ], [ %10, %9 ]
  store i64 %12, i64* %asan_local_stack_base
  %13 = add i64 %12, 32
  %14 = inttoptr i64 %13 to i8**
  %15 = inttoptr i64 %12 to i64*
  store i64 1102416563, i64* %15
  %16 = add i64 %12, 8
  %17 = inttoptr i64 %16 to i64*
  store i64 ptrtoint ([14 x i8]* @___asan_gen_.3 to i64), i64* %17
  %18 = add i64 %12, 16
  %19 = inttoptr i64 %18 to i64*
  store i64 ptrtoint (i32 (i32, i8**)* @main to i64), i64* %19
  %20 = lshr i64 %12, 3
  %21 = add i64 %20, 2147450880
  %22 = add i64 %21, 0
  %23 = inttoptr i64 %22 to i64*
  store i64 -868082052615769615, i64* %23, align 1
  %24 = sext i32 %0 to i64
  %25 = bitcast i8** %14 to i8*
  %26 = add i64 %21, 4
  %27 = inttoptr i64 %26 to i8*
  store i8 0, i8* %27, align 1
  call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %25)
  %28 = bitcast i8** %14 to void ()**
  %29 = ptrtoint void ()** %28 to i64
  %30 = lshr i64 %29, 3
  %31 = add i64 %30, 2147450880
  %32 = inttoptr i64 %31 to i8*
  %33 = load i8, i8* %32
  %34 = icmp ne i8 %33, 0
  br i1 %34, label %35, label %36

35:                                               ; preds = %11
  call void @__asan_report_store8(i64 %29)
  call void asm sideeffect "", ""()
  unreachable

36:                                               ; preds = %11
  store void ()* @_ZN5empty4main17h568ef413728a35a0E, void ()** %28, align 8
  %_4.0.i = bitcast i8** %14 to {}*
; call std::rt::lang_start_internal
  %37 = call i64 @_ZN3std2rt19lang_start_internal17hf4abd869024c3270E({}* nonnull align 1 %_4.0.i, [3 x i64]* noalias readonly align 8 dereferenceable(24) bitcast ({ { void (i8**)*, i64, i64, i32 (i8**)*, i32 (i8**)*, i32 (i8**)* }, [48 x i8] }* @vtable.0 to [3 x i64]*), i64 %24, i8** %1)
  %38 = add i64 %21, 4
  %39 = inttoptr i64 %38 to i8*
  store i8 -8, i8* %39, align 1
  call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %25)
  %40 = trunc i64 %37 to i32
  store i64 1172321806, i64* %15
  %41 = icmp ne i64 %7, 0
  br i1 %41, label %42, label %49

42:                                               ; preds = %36
  %43 = add i64 %21, 0
  %44 = inttoptr i64 %43 to i64*
  store i64 -723401728380766731, i64* %44, align 1
  %45 = add i64 %7, 56
  %46 = inttoptr i64 %45 to i64*
  %47 = load i64, i64* %46
  %48 = inttoptr i64 %47 to i8*
  store i8 0, i8* %48
  br label %52

49:                                               ; preds = %36
  %50 = add i64 %21, 0
  %51 = inttoptr i64 %50 to i64*
  store i64 0, i64* %51, align 1
  br label %52

52:                                               ; preds = %49, %42
  ret i32 %40
}

declare void @__asan_report_load_n(i64, i64)

declare void @__asan_loadN(i64, i64)

declare void @__asan_report_load1(i64)

declare void @__asan_load1(i64)

declare void @__asan_report_load2(i64)

declare void @__asan_load2(i64)

declare void @__asan_report_load4(i64)

declare void @__asan_load4(i64)

declare void @__asan_report_load8(i64)

declare void @__asan_load8(i64)

declare void @__asan_report_load16(i64)

declare void @__asan_load16(i64)

declare void @__asan_report_store_n(i64, i64)

declare void @__asan_storeN(i64, i64)

declare void @__asan_report_store1(i64)

declare void @__asan_store1(i64)

declare void @__asan_report_store2(i64)

declare void @__asan_store2(i64)

declare void @__asan_report_store4(i64)

declare void @__asan_store4(i64)

declare void @__asan_report_store8(i64)

declare void @__asan_store8(i64)

declare void @__asan_report_store16(i64)

declare void @__asan_store16(i64)

declare void @__asan_report_exp_load_n(i64, i64, i32)

declare void @__asan_exp_loadN(i64, i64, i32)

declare void @__asan_report_exp_load1(i64, i32)

declare void @__asan_exp_load1(i64, i32)

declare void @__asan_report_exp_load2(i64, i32)

declare void @__asan_exp_load2(i64, i32)

declare void @__asan_report_exp_load4(i64, i32)

declare void @__asan_exp_load4(i64, i32)

declare void @__asan_report_exp_load8(i64, i32)

declare void @__asan_exp_load8(i64, i32)

declare void @__asan_report_exp_load16(i64, i32)

declare void @__asan_exp_load16(i64, i32)

declare void @__asan_report_exp_store_n(i64, i64, i32)

declare void @__asan_exp_storeN(i64, i64, i32)

declare void @__asan_report_exp_store1(i64, i32)

declare void @__asan_exp_store1(i64, i32)

declare void @__asan_report_exp_store2(i64, i32)

declare void @__asan_exp_store2(i64, i32)

declare void @__asan_report_exp_store4(i64, i32)

declare void @__asan_exp_store4(i64, i32)

declare void @__asan_report_exp_store8(i64, i32)

declare void @__asan_exp_store8(i64, i32)

declare void @__asan_report_exp_store16(i64, i32)

declare void @__asan_exp_store16(i64, i32)

declare i8* @__asan_memmove(i8*, i8*, i64)

declare i8* @__asan_memcpy(i8*, i8*, i64)

declare i8* @__asan_memset(i8*, i32, i64)

declare void @__asan_handle_no_return()

declare void @__sanitizer_ptr_cmp(i64, i64)

declare void @__sanitizer_ptr_sub(i64, i64)

declare i64 @__asan_stack_malloc_0(i64)

declare void @__asan_stack_free_0(i64, i64)

declare i64 @__asan_stack_malloc_1(i64)

declare void @__asan_stack_free_1(i64, i64)

declare i64 @__asan_stack_malloc_2(i64)

declare void @__asan_stack_free_2(i64, i64)

declare i64 @__asan_stack_malloc_3(i64)

declare void @__asan_stack_free_3(i64, i64)

declare i64 @__asan_stack_malloc_4(i64)

declare void @__asan_stack_free_4(i64, i64)

declare i64 @__asan_stack_malloc_5(i64)

declare void @__asan_stack_free_5(i64, i64)

declare i64 @__asan_stack_malloc_6(i64)

declare void @__asan_stack_free_6(i64, i64)

declare i64 @__asan_stack_malloc_7(i64)

declare void @__asan_stack_free_7(i64, i64)

declare i64 @__asan_stack_malloc_8(i64)

declare void @__asan_stack_free_8(i64, i64)

declare i64 @__asan_stack_malloc_9(i64)

declare void @__asan_stack_free_9(i64, i64)

declare i64 @__asan_stack_malloc_10(i64)

declare void @__asan_stack_free_10(i64, i64)

declare void @__asan_poison_stack_memory(i64, i64)

declare void @__asan_unpoison_stack_memory(i64, i64)

declare void @__asan_set_shadow_00(i64, i64)

declare void @__asan_set_shadow_f1(i64, i64)

declare void @__asan_set_shadow_f2(i64, i64)

declare void @__asan_set_shadow_f3(i64, i64)

declare void @__asan_set_shadow_f5(i64, i64)

declare void @__asan_set_shadow_f8(i64, i64)

declare void @__asan_alloca_poison(i64, i64)

declare void @__asan_allocas_unpoison(i64, i64)

declare void @__asan_before_dynamic_init(i64)

declare void @__asan_after_dynamic_init()

declare void @__asan_register_globals(i64, i64)

declare void @__asan_unregister_globals(i64, i64)

declare void @__asan_register_image_globals(i64)

declare void @__asan_unregister_image_globals(i64)

declare void @__asan_register_elf_globals(i64, i64, i64)

declare void @__asan_unregister_elf_globals(i64, i64, i64)

declare void @__asan_init()

define internal void @asan.module_ctor() comdat {
  call void @__asan_init()
  call void @__asan_version_mismatch_check_v8()
  call void @__asan_register_elf_globals(i64 ptrtoint (i64* @___asan_globals_registered to i64), i64 ptrtoint (i64* @__start_asan_globals to i64), i64 ptrtoint (i64* @__stop_asan_globals to i64))
  ret void
}

declare void @__asan_version_mismatch_check_v8()

define internal void @asan.module_dtor() comdat {
  call void @__asan_unregister_elf_globals(i64 ptrtoint (i64* @___asan_globals_registered to i64), i64 ptrtoint (i64* @__start_asan_globals to i64), i64 ptrtoint (i64* @__stop_asan_globals to i64))
  ret void
}

attributes #0 = { nonlazybind sanitize_address uwtable "target-cpu"="x86-64" }
attributes #1 = { norecurse nounwind nonlazybind readnone sanitize_address uwtable "target-cpu"="x86-64" }
attributes #2 = { argmemonly nounwind willreturn }
attributes #3 = { nounwind nonlazybind sanitize_address uwtable "target-cpu"="x86-64" }
attributes #4 = { nonlazybind sanitize_address "target-cpu"="x86-64" }

!llvm.module.flags = !{!4, !5, !6}

!0 = !{{ { void (i8**)*, i64, i64, i32 (i8**)*, i32 (i8**)*, i32 (i8**)* }, [48 x i8] }* @vtable.0}
!1 = !{{ <{ [25 x i8] }>, [39 x i8] }* @alloc1}
!2 = !{{ <{ i8*, [8 x i8] }>, [48 x i8] }* @alloc2}
!3 = !{{ <{ [0 x i8] }>, [32 x i8] }* @alloc6}
!4 = !{i32 7, !"PIC Level", i32 2}
!5 = !{i32 7, !"PIE Level", i32 2}
!6 = !{i32 2, !"RtLibUseGOT", i32 1}
!7 = !{}
!8 = !{!9}
!9 = distinct !{!9, !10, !"_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h7b78d561c3825078E: %_1"}
!10 = distinct !{!10, !"_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h7b78d561c3825078E"}
!11 = !{!12}
!12 = distinct !{!12, !13, !"_ZN4core3fmt9Arguments6new_v117hc1127a6437d08baeE: argument 0"}
!13 = distinct !{!13, !"_ZN4core3fmt9Arguments6new_v117hc1127a6437d08baeE"}
